//
//  NSDate+AFF.h
//  AnyfishApp
//
//  Created by Bob Lee on 15/9/6.
//  Copyright (c) 2015年 Anyfish. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "NSDate+Utilities.h"
#import "NSDate+Extension.h"

@interface NSDate (AFF)

/**
 * 获取当前时间精确到微妙
 */
+ (U64)timeMicro;
+ (U64)timeMicro:(NSDate*)date;

/**
 * 获取当前时间精确到秒
 */
+ (U32)timeSecond;
+ (U32)timeSecond:(NSDate*)date;

/**
 * 基于服务器的时间；登陆后有效
 */
+ (NSDate*)dateAF; 

/**
 * @function
 * 说明 时间字符串转换为日期类型。基本格式化类型 yyyy-MM-dd HH:mm:ss
 * @param str
 
 * @return NSDate
 */
+ (NSDate *) string2Date:(NSString *)str;

/**
 * 时间字符串转日期
 * @param  str  字符串
 * @param  type  格式化类型
 
 * @return 时间对象
 */
+ (NSDate *)string2Date:(NSString *)str format:(AFFTimeFormatType)type;

/**
 * @function currentTimeString
 * 获取格式化后的当前系统时间字符串，基本格式化类型
 * @param 需要的格式类型
 
 * @return 格式后的时间字符串
 */
+ (NSString *)currentTimeString:(AFFTimeFormatType) type;

/**
 * @function
 * 说明 格式化指定日期，获得格式化字符串。基本格式化类型
 * @param 需要的格式类型
 
 * @return 格式后的时间字符串
 */
+ (NSString *)date2String:(NSDate *)date formatType:(AFFTimeFormatType)type;
+ (NSString *)date2StringWithInterval:(NSInteger)interval formatType:(AFFTimeFormatType)type;

/**
 * 系统通用的时间格式化，统一风格
 * @param  date  时间
 
 * @return NSString  格式化后字符串
 */
+ (NSString *)date2String:(NSDate *)date;
+ (NSString *)date2StringWithInterval:(NSInteger)interval;

/**
 * 特殊的时间显示
 * @param  interval   时间戳
 * @param  isMessage  是否鱼酬使用（其他地方使用直接走普通方法）
 
 * @return NSString  格式化后字符串
 */
+ (NSString *)date2StringWithInterval:(NSInteger)interval isMessage:(BOOL)isMessage;

/**
 * @function
 * 说明 获取某个日期在第几个工作日
 * @param date 日期
 * @param desc 工作日描述
 
 * @return 工作日类型
 */
+ (AFFWeekDayType)getWeekDay:(NSDate *)date desc:(NSString **)desc;

/**
 * @function
 * 说明 获取当前时间是这周的星期几
 
 * @return AFFWeekDayType     1 - 7 代表  星期日到星期六
 */

+ (AFFWeekDayType)getCurrentWeekDay:(NSString **) desc;

/**
 * (仅在判断运算时使用）返回当前系统标准时间，解决了8小时时间差问题
 */
//+ (NSDate*)dateLocal;

/**
 * (仅在判断运算时使用）转换为本地格式时间
 * @param  secs  时间值
 
 * @return 解决了8小时时间差的时间值
 */
//+ (NSDate*)dateLocal:(NSTimeInterval)secs;

/**
 * (仅在判断运算时使用）转换为本地格式时间
 * @param  date  标准的NSDate转换出来的时间
 
 * @return 解决了8小时时间差的时间值
 */
//+ (NSDate*)dateLocalEx:(NSDate*)date;

//- (BOOL)isToday;

@end
